class Solution {
public:
    string multiply(string num1, string num2) {
        // 模拟大数乘法
        int n = num1.size(), m = num2.size();
        vector<int> c(n + m);

        for(int i = 0; i < n; i++)
        {
            for(int j = 0; j < m; j++)
            {
                int a = num1[n - 1 - i] - '0';
                int b = num2[m - 1 - j] - '0';
                c[i + j] += a * b;
            }
        }

        // 处理进位
        for(int i = 0, t = 0; i < n + m; i++)
        {
            t += c[i];
            c[i] = t % 10;
            t /= 10;
        }

        // 处理前导零
        string ret;
        for(int i = c.size() - 1; i >= 0; i--)
        {
            if(ret.empty() && c[i] == 0)
                continue;
            ret += to_string(c[i]);
        }
        return ret.empty() ? "0" : ret;
    }
};